﻿using Abp.AutoMapper;
using AVIS.OutBound.CarGroups.Dto;
using AVIS.OutBound.Orders;
using AVIS.OutBound.Stores.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AVIS.OutBound.BookOrders.Dto
{
    /// <summary>
    /// 预定单信息
    /// </summary>
    [AutoMapFrom(typeof(BookOrder))]
    public class BookOrderOutput
    {
        /// <summary>
        /// 订单Id
        /// </summary>
        public string OrderId { get; set; }

        /// <summary>
        /// 订单号，由Wizard接口返回（如：37378367CN5） ReservationNumber
        /// </summary>
        public string OrderNo { get; set; }

        #region 取还车信息

        /// <summary>
        /// 取车时间
        /// </summary>
        public DateTime PickupDateTime { get; set; }

        /// <summary>
        /// 取车门店编号
        /// </summary>
        public string PickUpStoreCode { get; set; }

        /// <summary>
        /// 取车门店
        /// </summary>
        public StoreDto PickUpStore { get; set; }

        /// <summary>
        /// 取车门店名称
        /// </summary>
        public string PickUpStoreName { get; set; }

        /// <summary>
        /// 取车城市编号
        /// </summary>
        public string PickUpCityCode { get; set; }

        /// <summary>
        /// 取车城市名称
        /// </summary>
        public string PickUpCityName { get; set; }

        /// <summary>
        /// 取车的区域编号
        /// </summary>
        public string PickUpRegionCode { get; set; }

        /// <summary>
        /// 还车时间
        /// </summary>
        public DateTime ReturnDateTime { get; set; }

        /// <summary>
        /// 还车门店编号
        /// </summary>
        public string ReturnStoreCode { get; set; }

        /// <summary>
        /// 还车门店
        /// </summary>
        public StoreDto ReturnStore { get; set; }

        /// <summary>
        /// 还车门店名称
        /// </summary>
        public string ReturnStoreName { get; set; }

        /// <summary>
        /// 还车城市编号
        /// </summary>
        public string ReturnCityCode { get; set; }

        /// <summary>
        /// 还车城市名称
        /// </summary>
        public string ReturnCityName { get; set; }

        /// <summary>
        /// 还车的区域编号
        /// </summary>
        public string ReturnRegionCode { get; set; }

        /// <summary>
        /// 租期
        /// </summary>
        public int RentalLength { get; set; }

        /// <summary>
        /// 租期单位（一般为天）
        /// </summary>
        public string RentalUnit { get; set; }
        #endregion

        /// <summary>
        /// 订单总金额
        /// </summary>
        public double Amount { get; set; }

        ///<summary>
        ///Avis全球折扣号
        ///</summary>
        public string AWD { get; set; }

        ///<summary>
        ///会员卡号
        ///</summary>
        public string WizardNum { get; set; }

        ///<summary>
        ///优惠券号
        ///</summary>
        public string CouponNum { get; set; }

        ///<summary>
        ///协议号
        ///</summary>
        public string IATA { get; set; }

        /// <summary>
        /// 协议类型
        /// </summary>
        public int IATAType { get; set; }

        /// <summary>
        /// 选中的车组信息
        /// </summary>
        public CarGroupDto CarGroup { get; set; }

        /// <summary>
        /// 套餐价格代码
        /// </summary>
        public string RateCode { get; set; }

        /// <summary>
        /// 套餐名称
        /// </summary>
        public string RateName { get; set; }

        /// <summary>
        /// 套餐内容
        /// </summary>
        public List<string> RateContents { get; set; }

        /// <summary>
        /// 预订车组的唯一码
        /// </summary>
        public string SIPPCode { get; set; }

        /// <summary>
        /// 用户选择的增值服务数据（结构：类型 + 数量，多个用“;”隔开）
        /// </summary>
        public string EquipList { get; set; }

        /// <summary>
        /// 用户选择的第三方增值服务（JSON结构： [{"type": "-1","productId": "45","productName": "美国WiFi(含夏威夷)","price": "35"}]）
        /// </summary>
        public string ThirdOrders { get; set; }
    }
}
